package org.javahispano.javacup.modelo;

import java.util.List;

/**Interfaz para definir una tactica*/
public interface Tactica {

    /**Retornar un objeto TacticaDetalle que contiene un detalle de las caracteristicas de la tactica*/
    public TacticaDetalle getDetalle();

    /**Este metodo retorna una lista de comandos que los jugadores deberan ejecutar, para saber que comandos
     * usar se tiene la informacion de la situacion actual del partido, dado esto por el parametro sp (SituacionPartido)
     */
    public List<Comando> ejecutar(SituacionPartido sp);

    /**Retorna un arreglo tamaño 11 de Objetos Posicion,
     * indica cual es la posicion de los jugadores cuando inician el juego desde el centro
     * de la cancha*/
    public Posicion[] getPosicionSaca(SituacionPartido sp);

    /**Retorna un arreglo tamaño 11 de Objetos Posicion,
     * indica cual es la posicion de los jugadores cuando el adbersario inicia el juego desde el centro
     * de la cancha*/
    public Posicion[] getPosicionRecive(SituacionPartido sp);
}